home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Grab Bag
/
Shareware Grab Bag.iso
/
090
/
pctj8307.arc
/
BOXES.BAS
next >
Wrap
BASIC Source File
|
1984-01-23
|
2KB
|
76 lines
1000 'File: BOXES.BAS
1010 'Auth: Thomas V. Hoffmann
1020 'Edit: TVH 18-April-83 6:00pm
1030 '
1040 DEFINT A-Z
1050 '----------
1060 'CGA Definitions
1070 '
1080 MODEREG = &H3D8: COLORREG = &H3D9 '-- CGA Control Registers
1090 MODESAVE = &H465: COLORSAVE = &H466 '-- BIOS Saves CGA Regs here
1100 CRTREG = &H3D4: CRTDATA = &H3D5 '-- 6845 CRT control regs
1110 HIRES=1: GRAPH=2: BW=4: VIDEO=8 '-- Mode register bits
1120 G640=16: BLINK=32 '-- ..
1130 '
1140 '----------
1150 ' Switch to Color Adapter
1160 ' (If no mono adapter installed,
1170 ' change 1 to 0 in next line)
1180 '
1190 MONO = 1 '-- Return to mono adapter
1200 GOSUB 7000
1210 '
1220 '----------
1230 ' Set F10 for Exit
1240 '
1250 KEY ON: KEY (10) ON
1270 ON KEY(10) GOSUB 9900
1280 '
1290 '----------
1300 'Select 640 Color Mode
1310 '
1320 SCREEN 2: KEY OFF: CLS
1330 DEF SEG=0
1340 MODE = PEEK (MODESAVE) AND NOT BW
1350 POKE MODESAVE,MODE: OUT MODEREG,MODE
1360 '
3000 '----------
3010 ' Repeat Random 40x20 Boxes, PAINTed With Color
3020 '
3030 WHILE 1
3040 '-- Generate Random (X,Y) for Upper Left Corner
3050 X=RND*640: Y=RND*200
3060 '-- Draw White Box Outline
3070 LINE (X,Y)-STEP (40,20),1,B
3080 '-- Draw Nested Box Filled in Black
3090 LINE (X+1,Y+1)-STEP(38,18),0,BF
3100 '-- Pick Next Color Pattern in Sequence
3110 C = (C+1) MOD 15
3120 IF C = 0 THEN GOTO 3150 '-- Can't PAINT pattern 0
3130 '-- Paint Box with Color Pattern
3140 PAINT (X+3,Y+3),CHR$(C*&H11)
3150 WEND
3160 '
3170 '----------
7000 '----------
7010 ' Switch to Color/Graphics Display
7020 '
7030 DEF SEG=0: A=PEEK(&H410): POKE &H410,(A AND &HCF) OR &H20
7040 WIDTH 40: SCREEN 1: SCREEN 0: LOCATE ,,1,6,7
7050 RETURN
7060 '
7100 '----------
7110 ' Conditionally Switch to Monochrome Display
7120 '
7130 IF MONO <> 1 THEN LOCATE 1,1: RETURN
7140 DEF SEG=0: A=PEEK(&H410): POKE &H410,(A OR &H30)
7150 WIDTH 80: LOCATE ,,1,12,13: SCREEN 0,0,0
7160 KEY ON
7170 RETURN
7180 '
9900 '----------
9910 ' F10 Gets Here to Exit
9920 '
9930 GOSUB 7100 '-- return to monochrome
9940 END '-- and quit